package cn.edu.ujn.service.impl;

import java.util.HashMap;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cn.edu.ujn.dao.BaseDict;
import cn.edu.ujn.dao.BaseDictMapper;
import cn.edu.ujn.dao.QueryPo;
import cn.edu.ujn.service.IBaseDictService;
import cn.edu.ujn.utils.Page;

@Service

public class BaseDictServiceImpl implements IBaseDictService {
	@Autowired
	private BaseDictMapper baseDictMapper;

//根据类型查找全部的数字字典，返回List列表
	@Override
	public List<BaseDict> findBaseDictByTypeCode(String typecode) {
		return baseDictMapper.selectBaseDictByTypeCode(typecode);
	}

	@Override
	public Page<BaseDict> selectByCondintion(Integer currentPage, Integer pageSize, String keyWord) {

		HashMap map = new HashMap();
		Page<BaseDict> page = new Page<BaseDict>();
		// 搜索参数
		map.put("keyWord", keyWord);
		// 计算当前的页面最后的一行的，然后作为查询的开始位置，key必须用start,工具类的导航类已经写名字了，必须对应
		map.put("start", (currentPage - 1) * pageSize);
		// 设置页面显示多少行，key必须用rows,工具类的导航类已经写名字了，必须对应
		map.put("rows", pageSize);
		// 按照给的搜索条件进行查询，返回List客户列表
		List<BaseDict> Rows = baseDictMapper.selectBaseDictList(map);
		// 计算上面条件进行查询的总行数
		int Total = baseDictMapper.selectBaseDictListCount(keyWord);
		// 设置分页
		page.setPage(currentPage);// 设置当前页面
		page.setSize(pageSize);// 设置页面大小
		page.setRows(Rows);// 条件查询的结果返回
		page.setTotal(Total);// 总行数
		// 返回一个Page对象
		return page;
	}

// 删除字典，将enable标志位设置为0
	@Override
	public int deleteDict(String dict_id) {
		BaseDict baseDict = new BaseDict();
		baseDict.setDict_enable("0");
		baseDict.setDict_id(dict_id);
		return baseDictMapper.updateByPrimaryKeySelective(baseDict);
	}

//得到id字典的信息
	@Override
	public BaseDict getDictById(String dict_id) {
		return baseDictMapper.selectByPrimaryKey(dict_id);
	}

//更新字典
	@Override
	public int updateBaseDict(BaseDict baseDict) {
		return baseDictMapper.updateByPrimaryKeySelective(baseDict);
	}

//创建字典
	@Override
	public int creatBaseDict(BaseDict baseDict) {
		return baseDictMapper.insert(baseDict);
	}

	@Override
	public List<BaseDict> queryBaseDictGetTypeCode() {
		// TODO Auto-generated method stub
		List<BaseDict> list = baseDictMapper.queryBaseDictGetTypeCode();
		return list;
	}

//分页
	@Override
	public Page<BaseDict> queryBaseDictByQueryPo(QueryPo queryPo) {
		// TODO Auto-generated method stub
		queryPo.setStart((queryPo.getPage() - 1) * queryPo.getRows());
		// 查询
		List<BaseDict> list = baseDictMapper.queryBaseDictByQueryPo(queryPo);
		// 总数
		int total = baseDictMapper.queryCountByQueryPo(queryPo);

		// 封装
		Page<BaseDict> page = new Page<>(total, queryPo.getPage(), queryPo.getRows(), list);
		return page;
	}
}
